package com.higgins.eventtracking.client;

import java.util.Date;
import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.higgins.eventtracking.client.dto.AssetDTO;
import com.higgins.eventtracking.client.dto.FinanceGoalDTO;
import com.higgins.eventtracking.client.dto.InventoryDTO;
import com.higgins.eventtracking.client.dto.MealDTO;

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface DietTrackingServiceAsync {
	void insertConsumption(Date timestamp, String meal, Double calories, Double protein, Double fat, Double water, AsyncCallback<Boolean> callback)	throws IllegalArgumentException;
    void hasEaten(int hours, AsyncCallback<Boolean> callback) throws IllegalArgumentException;
	void retrieveCaloriesToday(AsyncCallback<Double> callback) throws IllegalArgumentException;
	void retrieveProteinToday(AsyncCallback<Double> callback) throws IllegalArgumentException;
	void retrieveFatToday(AsyncCallback<Double> callback) throws IllegalArgumentException;
	void retrieveWaterToday(AsyncCallback<Double> callback) throws IllegalArgumentException;
	void retrieveMeals(AsyncCallback<List<MealDTO>> callback) throws IllegalArgumentException;
	void insertInventory(InventoryDTO dto, AsyncCallback<Boolean> callback) throws IllegalArgumentException;
}
